package com.pp.web.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pp.common.pojo.Post;
import com.pp.common.pojo.User;
import com.pp.web.model.dto.CreatePostDTO;
import com.pp.web.model.dto.UpdatePostDTO;
import com.pp.web.model.vo.PostVO;

import java.util.Map;

public interface IPostService extends IService<Post> {

    /**
     * 根据 tabName 的值分页获取首页帖子列表
     */
    Page<PostVO> getPostsByPages(Page<PostVO> objectPage, String tabName);

    /**
     * 发布帖子
     */
    Post createPost(CreatePostDTO createPostDTO, User user);

    /**
     * 根据 postId 获取帖子详情
     */
    Map<String, Object> getPostById(String postId);

    /**
     * 根据 keyword 检索帖子
     */
    Page<PostVO> searchPostsByKeyword(String keyword, Page<PostVO> page);

    /**
     * 更新帖子 (title 和 content) 以及对应的 tags
     */
    Post updatePost(String username, UpdatePostDTO updatePostDTO);
}
